<script setup lang="ts">
import { getCurrentInstance } from 'vue'
const { appContext } = getCurrentInstance()

// import env from '@/config/env'
onLaunch(() => {
  // console.log('App Launch')
  // console.log(env.apiEnv, 'apiEnv')
  // const appStore = useStore('app')
  // const systemInfo = appStore.getSystemInfo()
  // console.log(systemInfo, 'systemInfo')

  // 判断应用的 getUpdateManager 是否在当前版本可用
  if (uni.canIUse('getUpdateManager')) {
    const updateManager = uni.getUpdateManager()
    // 向小程序后台请求完新版本信息
    updateManager.onCheckForUpdate((res) => {
      if (res.hasUpdate) {
        //小程序有新版本，静默下载新版本，新版本下载完成
        updateManager.onUpdateReady(() => {
          //强制用户更新，弹出弹窗
          uni.showModal({
            title: '温馨提示',
            content: '新版本已经准备好，请重启应用',
            showCancel: false, //隐藏取消按钮
            success: (res) => {
              // 强制更新
              if (res.confirm) {
                // 当新版本下载完成，调用该方法会强制当前小程序应用上新版本并重启
                updateManager.applyUpdate()
              }
            }
          })
        })
        // 当新版本下载失败
        updateManager.onUpdateFailed(() => {
          uni.showModal({
            title: '更新失败',
            content: '请您删除当前小程序，重新打开小程序'
          })
        })
      }
    })
  } else {
    // 提示用户在最新版本的客户端上体验
    uni.showModal({
      title: '温馨提示',
      content: '当前微信版本过低，可能无法使用该功能，请升级到最新版本后重试。'
    })
  }
  // uni.setInnerAudioOption({
  //   obeyMuteSwitch: false
  // })
  uni.getSystemInfo({
    success: (e) => {
      const statusBarHeight = e.statusBarHeight
      const titleBarHeight = e.titleBarHeight
      // 获取 appContext  上下文
      // console.log('StatusBar', appContext)
      // #ifndef MP
      appContext.config.globalProperties.StatusBar = statusBarHeight
      if (e.platform === 'android') {
        appContext.config.globalProperties.CustomBar = statusBarHeight + 50
      } else {
        appContext.config.globalProperties.CustomBar = statusBarHeight + 45
      }
      // #endif
      // #ifdef MP-WEIXIN
      appContext.config.globalProperties.StatusBar = e.statusBarHeight
      // @ts-ignore
      const custom = wx.getMenuButtonBoundingClientRect()
      appContext.config.globalProperties.Custom = custom
      appContext.config.globalProperties.CustomBar = custom.bottom + custom.top - statusBarHeight
      // #endif
      // #ifdef MP-ALIPAY
      appContext.config.globalProperties.StatusBar = statusBarHeight
      appContext.config.globalProperties.CustomBar = statusBarHeight + titleBarHeight
      // #endif
    }
  })
})
onShow(() => {
  console.log('App Show')
})
onHide(() => {
  console.log('App Hide')
})
</script>

<style lang="css">
@import 'colorui/main.css';
@import 'colorui/icon.css';
@import 'colorui/animation.css';
@import 'static/iconfont/iconfont.css';
</style>
<style lang="scss">
@import 'static/css/index.scss';
</style>
